# @Desc    : do what 
# @Author  : meihongliang  
# @Time    : 2025-03-22 14:47
import os
import smtplib
from datetime import datetime
from email.mime.text import MIMEText
from email.header import Header


def from_163_to_qq():
    # 163 邮箱的 SMTP 服务器地址和端口
    smtp_server = 'smtp.163.com'
    smtp_port = 465  # SSL 端口
    # smtp_port = 587  # TLS 端口

    # 发件人和收件人邮箱
    sender_email = '13752935158@163.com'  # 替换为你的 163 邮箱
    sender_email = 'casblanca@163.com'  # 可用的
    receiver_email = '908847427@qq.com'  # 替换为收件人 QQ 邮箱

    # 发件人邮箱的客户端授权密码（不是 163 邮箱密码）
    password = os.getenv('auth_code_from_163')  # 替换为你的客户端授权密码

    # 归属地：
    # 中国 四川省 成都市 武侯区
    # 运营商：
    # 中国电信
    # 本机IP：
    # 222.211.213.31

    # 邮件内容
    # 尊敬的mei同志:
    #     您好！
    #         如下是 季节性周期轮换提醒
    #         年度轮换项目=内裤,价格=59,型号=XL,每年轮换次数=2.0,轮换月份=1,7
    #         年度轮换项目=床单,价格=38,型号=200*230,每年轮换次数=3.0,轮换月份=1,5,9
    #         请查收附件中的文件，并尽快回复。
    #     此致
    #     敬礼

    # 尊敬的mei同志:
    #     您好！
    #         如下是 季节性周期轮换提醒
    #         年度轮换项目=内裤,价格=59,型号=XL,每年轮换次数=2.0,轮换月份=1,7
    #         年度轮换项目=床单,价格=38,型号=200*230,每年轮换次数=3.0,轮换月份=1,5,9
    #         请查收附件中的文件，并尽快回复。
    #     此致
    #     敬礼
    subject = '运维系统异常通知'
    body = f'''
        您需要更换你的床单了，每1，5，9轮换一次
    '''

    # 创建邮件对象
    message = MIMEText(body, 'plain', 'utf-8')
    message['From'] = Header(sender_email, 'utf-8')  # 发件人
    message['To'] = Header(receiver_email, 'utf-8')  # 收件人
    message['Subject'] = Header(subject, 'utf-8')  # 主题

    try:
        # 连接 SMTP 服务器
        with smtplib.SMTP_SSL(smtp_server, smtp_port) as server:
            # server.set_debuglevel(1)  # 启用调试模式
            server.connect(smtp_server)
            if str(smtp_port) == '587':
                print(f'{smtp_port} 启用 TLS 加密')
                server.starttls()  # 启用 TLS 加密
            # 登录邮箱
            server.login(sender_email, password)
            # 发送邮件
            send_result = server.sendmail(sender_email, receiver_email, message.as_string())
            print(send_result)
        #     https://help.mail.163.com/faqDetail.do?code=d7a5dc8471cd0c0e8b4b8f4f8e49998b374173cfe9171305fa1ce630d7f67ac23ce823b56eb3f218
        print("邮件发送成功！")
    except Exception as e:
        print(type(e), e)
        print(f"邮件发送失败: {e}")
    # finally:
    #     server.quit()


if __name__ == '__main__':
    print(
        f"{datetime.now()}发送邮件测试，from_163_to_qq 网易smtp服务器报 554, b'DT:SPM 163 gzga-smtp-mtada-g1-4 标识垃圾邮件")
    from_163_to_qq()
